package com.briup.jd2511.jd2511bookstore.proxy.jdk;


import com.briup.jd2511.jd2511bookstore.proxy.Singer;
import com.briup.jd2511.jd2511bookstore.proxy.Target;

import java.util.ArrayList;
import java.util.List;

//测试类
public class LogProxyFactoryTest {
    public static void main(String[] args) {
        //创建目标对象
        Singer target = new Target();
        //获取代理对象
        Singer proxy = com.briup.proxy.jdk.LogProxyFactory.getProxy(target);
        //借助代理对象实现功能(核心功能+附加功能)
        proxy.sing();

        System.out.println("---------下面为扩展，尝试理解--------");

        //创建目标类对象
        ArrayList<String> list = new ArrayList<>();
        //创建代理对象
        List<String> proxyList = com.briup.proxy.jdk.LogProxyFactory.getProxy(list);
        //代理对象执行add，除了实现基础功能，还可以 额外输出日志
        proxyList.add("world");
        //代理对象执行toString，除了实现基础功能，还可以 额外输出日志
        System.out.println(proxyList.toString());
    }
}
